package com.lee.mysql.dao;

import com.lee.mysql.pojo.Menu;
import com.lee.mysql.vo.MenuVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;

@Mapper
@Component("menuDao")
public interface MenuDao {

    /** 根据ID删除 */
    int deleteById(@Param("id") String id);

    /** 根据ID批量删除 */
    int deleteByIds(@Param("idList") List<String> idList);

    /** 插入一条数据 */
    int insertOne(Menu record);

    /** 根据ID更新所有数据 */
    int updateById(Menu record);

    /** 根据主键查询一条数据 */
    Menu queryOneById(@Param("id") String id);

    /** 查询 */
    List<Menu> getList(Menu record);

    /** 查询所有菜单 */
    List<Menu> queryAllMenu(@Param("menuType") String menuType);

    /** 查询所有顶级菜单 */
    List<MenuVo> queryParentMenu();

    /** 查询所有子菜单 */
    List<MenuVo> queryChildMenu(@Param("id") String id, @Param("menuType") String menuType);

    /** 获取角色拥有菜单 */
    List<Menu> getRoleMenuList(@Param("roleId") String roleId);

    /** 获取角色拥有菜单 */
    List<String> getRoleMenuIds(@Param("roleId") String roleId);

    /** 获取角色拥有菜单父级ID */
    List<String> getRoleMenuParIds(@Param("roleId") String roleId);

    
}